The Decorator pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. Like adding toppings to your coffee!
Configure your coffee and click "Order Coffee"